import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
import { catsProviders } from './cats.providers';
import { DatabaseModule } from '../../database/mongoose/database.module';

/* 
1. 需要使用 connect() 函数建立与数据库的连接。connect() 函数返回一个 Promise，因此必须创建一个异步提供者CatsProviders
2. 导出这些提供者，使它们对应用程序的其余部分可访问
3. Mongoose 中，所有内容都源自 Schema。所以要定义 CatSchema
4. 通过 @Inject() 装饰器将 CAT_MODEL 注入到 CatsService 中
5. 使用了 Cat 接口。该接口扩展了 mongoose 包中的 Document
6. 在App中导入CatsModule
*/
@Module({
  imports: [DatabaseModule],
  controllers: [CatsController],
  providers: [
    CatsService,
    ...catsProviders,
  ],
})
export class CatsModule {}